/*
 * @Description: 
 * @Autor: 商晓彬
 * @Date: 2021-06-18 10:12:03
 * @LastEditors: 商晓彬
 * @LastEditTime: 2021-12-03 10:34:21
 */
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { SystemRoutingModule } from './system-routing.module';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { AppCommonModule } from '@app/shared/common/app-common.module';
import { UtilsModule } from '@shared/utils/utils.module';
import { CountoModule } from 'angular2-counto';
import { ModalModule, TabsModule, TooltipModule, BsDropdownModule, PopoverModule } from 'ngx-bootstrap';

import { NgxChartsModule } from '@swimlane/ngx-charts';
import { TableModule } from 'primeng/table';
import { TreeModule } from 'primeng/tree';
import { BsDatepickerModule, BsDatepickerConfig, BsDaterangepickerConfig, BsLocaleService } from 'ngx-bootstrap/datepicker';
import { NgxBootstrapDatePickerConfigService } from 'assets/ngx-bootstrap/ngx-bootstrap-datepicker-config.service';
import { LightboxModule } from 'primeng/lightbox';
import { AdminModule } from '../admin/admin.module';
import { ToggleButtonModule } from 'primeng/togglebutton';
import { ButtonModule } from 'primeng/button';


import {
    AutoCompleteModule,
    CardModule,
    ContextMenuModule,
    DragDropModule,
    EditorModule,
    FileUploadModule,
    InputMaskModule,
    MultiSelectModule,
    PaginatorModule,
    TabViewModule,
    CalendarModule
} from 'primeng/primeng';
import { TextMaskModule } from 'angular2-text-mask';
import { ImageCropperModule } from 'ngx-image-cropper';
import { UserCodeComponent } from './user-code/user-code.component';
import { UserCodeEditOrAddComponent } from './user-code/user-code-edit-or-add/user-code-edit-or-add.component';
import { CodindManagementComponent } from './codind-management/codind-management.component';
import { CodingEditOrAddComponent } from './codind-management/coding-edit-or-add/coding-edit-or-add.component';
import { ChipsModule } from 'primeng/chips';
import { ShowResumeComponent } from './codind-management/show-resume/show-resume.component';
import { TimeManageComponent } from './time-manage/time-manage.component';
import { ClassSettingComponent } from './class-setting/class-setting.component';
import { TimeUpdateComponent } from './time-manage/time-update/time-update.component';
import { TimeShowResumeComponent } from './time-manage/time-show-resume/time-show-resume.component';
import { MessageComponent } from './message/message.component';
import { DialogModule } from 'primeng/dialog';
import { MessageNoticeComponent } from './message-notice/message-notice.component';
import { ProcessConfigurationComponent } from './approval/process-configuration/process-configuration.component';
import { MyApprovalComponent } from './approval/my-approval/my-approval.component';
import { MyInitiationComponent } from './approval/my-initiation/my-initiation.component';
import { TabMenuModule } from 'primeng/tabmenu';
import { SidebarModule } from 'primeng/sidebar';
import { TriStateCheckboxModule } from 'primeng/tristatecheckbox';
import { BonChangeComponent } from './approval/my-approval/bon-change/bon-change.component';
import { BomComponent } from './approval/my-approval/bom/bom.component';
import { ProcedureChangeComponent } from './approval/my-approval/procedure-change/procedure-change.component';
import { DetailComponent } from './approval/my-approval/procedure-change/detail/detail.component';
import {TreeTableModule} from 'primeng/treetable';
import { BomWatchComponent } from './approval/my-approval/bon-change/bom-watch/bom-watch.component';
import { SkillMatrixComponent } from './skill-matrix/skill-matrix.component';
import { WarehouseReviewComponent } from './kanban/warehouse-review/warehouse-review.component';
import { ProductionTaskComponent } from './kanban/production-task/production-task.component';
import { RocketMatchingKanbanComponent } from './kanban/rocket-matching-kanban/rocket-matching-kanban.component';
import { RocketAssemblyKanbanComponent } from './kanban/rocket-assembly-kanban/rocket-assembly-kanban.component';
import {ProgressBarModule} from 'primeng/progressbar';
import { AssemblyInnerComponent } from './kanban/rocket-assembly-kanban/assembly-inner/assembly-inner.component';
import { MatchingInnerComponent } from './kanban/rocket-matching-kanban/matching-inner/matching-inner.component';
import { MatchingSumComponent } from './kanban/rocket-matching-kanban/matching-sum/matching-sum.component';
import { PlanKanbanComponent } from './kanban/plan-kanban/plan-kanban.component';
@NgModule({
    imports: [
        ProgressBarModule,
        TreeTableModule,
        TriStateCheckboxModule,
        SidebarModule,
        TabMenuModule,
        DialogModule,
        CommonModule,
        SystemRoutingModule,
        CommonModule,
        ModalModule,
        TabsModule,
        TooltipModule,
        AppCommonModule,
        UtilsModule,
        CountoModule,
        NgxChartsModule,
        BsDatepickerModule.forRoot(),
        BsDropdownModule.forRoot(),
        TableModule,
        PaginatorModule,
        AdminModule,
        FormsModule,
        ReactiveFormsModule,
        CommonModule,
        FileUploadModule,
        ModalModule.forRoot(),
        TabsModule.forRoot(),
        TooltipModule.forRoot(),
        PopoverModule.forRoot(),
        BsDropdownModule.forRoot(),
        BsDatepickerModule.forRoot(),
        UtilsModule,
        AppCommonModule,
        TableModule,
        TreeModule,
        DragDropModule,
        ContextMenuModule,
        PaginatorModule,
        AutoCompleteModule,
        EditorModule,
        InputMaskModule,
        NgxChartsModule,
        CountoModule,
        TextMaskModule,
        ImageCropperModule,
        TabViewModule,
        CardModule,
        MultiSelectModule,
        CalendarModule,
        LightboxModule,
        ToggleButtonModule,
        ButtonModule,
        ChipsModule
    ],
    declarations: [
        UserCodeComponent,
        UserCodeEditOrAddComponent,
        CodindManagementComponent,
        CodingEditOrAddComponent,
        ShowResumeComponent,
        TimeManageComponent,
        ClassSettingComponent,
        TimeShowResumeComponent,
        TimeUpdateComponent,
        MessageComponent,
        MessageNoticeComponent,
        ProcessConfigurationComponent,
        MyApprovalComponent,
        MyInitiationComponent,
        BonChangeComponent,
        BomComponent,
        ProcedureChangeComponent,
        DetailComponent,
        BomWatchComponent,
        SkillMatrixComponent,
        WarehouseReviewComponent,
        ProductionTaskComponent,
        RocketMatchingKanbanComponent,
        RocketAssemblyKanbanComponent,
        AssemblyInnerComponent,
        MatchingInnerComponent,
        MatchingSumComponent,
        PlanKanbanComponent
    ],
    providers: [
        { provide: BsDatepickerConfig, useFactory: NgxBootstrapDatePickerConfigService.getDatepickerConfig },
        { provide: BsDaterangepickerConfig, useFactory: NgxBootstrapDatePickerConfigService.getDaterangepickerConfig },
        { provide: BsLocaleService, useFactory: NgxBootstrapDatePickerConfigService.getDatepickerLocale }
    ]
})
export class SystemModule { }
